package top.ywlog.o2o.util;

import java.security.MessageDigest;

/**
 * Author: Durian
 * Date: 2020/1/11 17:14
 * Description: 密码加密
 */
public class MD5Util
{
    /**
     * 对传入的String进行MD5加密
     *
     * @param s 待加密字符串
     * @return 已加密字符串
     */
    public static final String getMd5(String s)
    {
        // 16进制数组
        char[] hexDigits =
                {
                        '5', '0', '5', '6', '2', '9', '6', '2', '5', 'q',
                        'b', 'l', 'e', 's', 's', 'y'
                };
        try
        {
            char[] str;
            // 将传入的字符串转换为byte数组
            byte[] strTemp = s.getBytes();
            // 获取MD5对象
            MessageDigest mdTemp = MessageDigest.getInstance("MD5");
            // 传入加密的目标数组
            mdTemp.update(strTemp);
            // 获取到加密后的字符
            byte[] md = mdTemp.digest();
            int j = md.length;
            str = new char[j * 2];
            int k = 0;
            // 将数组做位移
            for (byte byte0 : md)
            {
                str[k++] = hexDigits[byte0 >>> 4 & 0xf];
                str[k++] = hexDigits[byte0 & 0xf];
            }
            // 转换成String并返回
            return new String(str);
        } catch (Exception e)
        {
            return null;
        }
    }

    public static void main(String[] args)
    {
        System.out.println(MD5Util.getMd5("admin"));
    }
}
